1. Field of the Invention
The present invention relates generally to a server duplication system and method and a storage medium storing a server duplication computer program and, more particularly, to a server duplication system and method and a storage medium storing a server duplication computer program, which are capable of increasing response speed when a virtual machine (VM) invokes a file input/output call upon duplicating a server in which one or more virtual machines (VMs) have been generated on a hypervisor.
2. Description of the Related Art
A conventional type of server duplication is performed in such a way that data is stored in shared storage, one of two or more servers runs an application, and a standby server runs the application and then continues service when the former server crashes. This method has the problem that service is interrupted during a period from the time at which a crash occurs to the time at which the application is ready to run on the standby server.
Accordingly, a fault tolerance (FT) technology is provided that duplicates not only data but also a CPU, memory and a network device. Since not only the data but also the CPU is duplicated, every server may run an application and perform service. This type of fault tolerance technology utilizes a method of performing real-time duplication using a fault-tolerance hardware module or a hypervisor-based duplication method. Although the hardware-based duplication method has excellent performance, it requires firmware-level control in connection with duplication, and thus has the problem of having to include high-cost hardware.
FIG. 1 is a diagram showing the configuration of a system to which the conventional hypervisor-based fault tolerance technology has been applied. With the advent of hypervisor technology, a plurality of virtual servers could be provided by generating a plurality of virtual machines in a single physical server. This technology may be applied to, for example, the field of cloud computing. For example, a cloud computing service user may reduce the server management cost by setting up a virtual machine that has allocated resources appropriate for its needs in a physical server device provided by a service administrator. The hypervisor-based fault tolerance technology is provided in order to provide High Availability (HA) to the service administrator.
As shown in FIG. 1, the hypervisor-based fault tolerance technology duplicates virtual resources at the hypervisor level, thereby achieving the advantage of duplicating a primary server into a standby server. That is, in the system to which the hypervisor-based fault tolerance technology has been applied, FT modules provided in the hypervisors of the primary and standby servers synchronize virtual resources that are managed by both the hypervisors. The virtual resources may include, for example, the register values of a virtual CPU, the data of virtual memory, the data of virtual storage, etc.
Meanwhile, since the hypervisor-based fault tolerance technology requires that the synchronization of virtual resources takes a long time, the problem occurs that a task, particularly a task requiring the synchronization of a storage device having a low operating speed, takes a long time to return a kernel service function. This will be described in greater detail below with reference to FIG. 2.
FIG. 2 is a signal flow diagram showing the processing of a data write call that is performed by a system to which the hypervisor-based fault tolerance technology has been applied, when the data write call is invoked during the execution of an application that runs on a primary VM running on a primary server.
First, when the primary VM requests the primary hypervisor of the primary server to write data, an FT module provided in the primary hypervisor of the primary server requests synchronization Sync from the FT module of the standby hypervisor of a standby server. The standby hypervisor of the standby server receives the synchronization request signal, and requests an update from the standby VM of the standby server.
The virtual machine of the standby server again performs the operation in which the application that runs in the virtual machine of the primary server invokes the data write call. That is, the virtual machine of the standby server requests the hypervisor of the standby server to write data, and the hypervisor of the standby server actually writes the data in the standby HDD of the standby server. After the data has been written on the standby HDD of the standby server, the virtual machine of the standby server returns the update (Update_Ack). Furthermore, the hypervisor returns the synchronization request of the standby server (Sync_Ack).
Thereafter, the primary hypervisor of the primary server also physically writes data in the primary HDD of the primary server. After the data has been written on the primary HDD of the primary server, the data write call from the virtual machine of the primary server is finally returned.
As shown in FIG. 2, the system to which the hypervisor-based FT technology has been applied has the problem that the operating speed is reduced particularly in a task involving low-speed storage device synchronization.